home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Leser 19 / Amiga Plus Leser CD 19.iso / Tools / Freeware / PerfectPaint / rexx / Anim / FrameTransition.rx < prev    next >
Text File  |  2001-10-01  |  6KB  |  376 lines

  1. /*     arexx Script 
  2.     Fade in Black
  3. */
  4.  
  5.     call addlib("rexxmathlib.library", 5, -30, 0)
  6.  
  7.     options results
  8.     parse ARG Port b
  9.     
  10.     ADDRESS value Port
  11.  
  12.     pp_CountFrames
  13.     nb=result
  14.     if nb<2 then do
  15.         pp_Warn 'Make*an*Anim*first.'
  16.         EXIT
  17.     end
  18.  
  19.     pp_GetWidth
  20.     w=result
  21.     pp_GetHeight
  22.     h=result
  23.     pp_GetDepth
  24.     D=result
  25.  
  26.     Mode=0
  27.     Effect=0
  28.     kca=0
  29.     Fade=0
  30.     pp_DialogInit 250 160 "*Frame*Transition*" 6
  31.         pp_Slider 0 100 5 100 16 "First*Frame*#" 1 1 nb 1
  32.         pp_Slider 1 100 25 100 16 "Last*Frame*#" 1 1 nb nb
  33.         pp_Cycle 2 150 45 50 16 "Keep*Current*Anim" 1 "No|Yes" kca
  34.         pp_Cycle 3 100 65 100 16 "Mode" 1 "In|Out" Mode
  35.         pp_Cycle 4 100 85 100 16 "Fade" 1 "No|Yes" Fade
  36.         pp_Cycle 5 100 105 100 16 "Effect" 1 "None|Circle|Box|Linear*H|Linear*V|Spray|SinWave|Twirl|Mosaic" Effect
  37.     pp_Dialog
  38.     rc=result
  39.     if rc=0 then
  40.         do
  41.             EXIT
  42.         end        
  43.         
  44.     pp_GetDialog 0
  45.     s0=result
  46.  
  47.     pp_GetDialog 1
  48.     s1=result
  49.  
  50.     pp_GetDialog 2
  51.     kca=result
  52.  
  53.     pp_GetDialog 3
  54.     Mode=result
  55.  
  56.     pp_GetDialog 4
  57.     Fade=result
  58.  
  59.     pp_GetDialog 5
  60.     Effect=result
  61.  
  62.     pp_ComposeReqOff
  63.     IF Effect=8 then DO
  64.         pp_GetCurrentBrush
  65.         CB=result
  66.         pp_FindEmptyBrush
  67.         Brush=result
  68.         pp_SetBrush Brush
  69.         pp_GotoFrame s1
  70.         pp_PicttoSpare
  71.         pp_GotoFrame s0            
  72.         pp_Pickbrush 0 0 W H 1
  73.  
  74.         step=(s1-s0)
  75.         Step_f0=30/Step
  76.  
  77.         pp_Compose 0 100 0    
  78.         pp_EffectOn
  79.         do i=s0 to s1
  80.             pp_GotoFrame i
  81.             f0=Step_f0*(i-s0)
  82.             IF kca=0 then DO
  83.                 pp_EffectOff
  84.                 pp_Plot W/2 H/2
  85.                 pp_EffectOn
  86.             END
  87.             f0=trunc(f0+0.5,0)
  88.             if f0>1 then DO            
  89.                 pp_Mosaic f0
  90.                 pp_boxf 0 0 W H                
  91.             END
  92.         END
  93.  
  94.         Step_f=100/Step
  95.         Step_f0=-30/Step
  96.  
  97.         pp_GotoFrame s0
  98.         pp_SpareOnOff
  99.         pp_PickBrush 0 0 W H 1
  100.         pp_SpareOnOff
  101.  
  102.         do i=s0 to s1
  103.             pp_GotoFrame i
  104.             pp_SpareOnOff
  105.             pp_EffectOff
  106.             pp_Plot W/2 H/2
  107.             pp_EffectOn
  108.             f0=30+Step_f0*(i-s0)
  109.             f=Step_f*(i-s0)
  110.             pp_Compose 0 100 0
  111.             f0=trunc(f0+0.5,0)
  112.             if f0>1 then DO
  113.                 pp_Mosaic f0
  114.                 pp_boxf 0 0 W H
  115.             END
  116.             pp_SpareOnOff
  117.             pp_Spare
  118.             pp_Compose 0 f 0
  119.             pp_boxf 0 0 W H            
  120.         END            
  121.  
  122.         pp_Gotoframe s0
  123.         pp_FreeBrush
  124.         pp_SetBrush CB
  125.     END            
  126.  
  127.     IF Effect=7 then DO
  128.         pp_GetCurrentBrush
  129.         CB=result
  130.         pp_FindEmptyBrush
  131.         Brush=result
  132.         pp_SetBrush Brush
  133.         pp_GotoFrame s1
  134.         pp_PicttoSpare
  135.         pp_GotoFrame s0            
  136.         pp_Pickbrush 0 0 W H 1
  137.  
  138.         step=(s1-s0)
  139.         Step_f0=-180/Step
  140.  
  141.         pp_Compose 0 100 0    
  142.         pp_EffectOn
  143.         do i=s0 to s1
  144.             pp_GotoFrame i
  145.             f0=Step_f0*(i-s0)
  146.             IF kca=0 then DO
  147.                 pp_EffectOff
  148.                 pp_Plot W/2 H/2
  149.                 pp_EffectOn
  150.             END
  151.             f0=trunc(f0)
  152.             if f0~=0 then DO            
  153.                 pp_Twirl f0
  154.                 pp_boxf 0 0 W H                
  155.             END
  156.         END
  157.  
  158.         Step_f=100/Step
  159.         Step_f0=180/Step
  160.  
  161.         pp_GotoFrame s0
  162.         pp_SpareOnOff
  163.         pp_PickBrush 0 0 W H 1
  164.         pp_SpareOnOff
  165.  
  166.         do i=s0 to s1
  167.             pp_GotoFrame i
  168.             pp_SpareOnOff
  169.             pp_EffectOff
  170.             pp_Plot W/2 H/2
  171.             pp_EffectOn
  172.             f0=-180+Step_f0*(i-s0)
  173.             f=Step_f*(i-s0)
  174.             pp_Compose 0 100 0
  175.             f0=trunc(f0)
  176.             if f0~=0 then DO
  177.                 pp_Twirl f0
  178.                 pp_boxf 0 0 W H
  179.             END
  180.             pp_SpareOnOff
  181.             pp_Spare
  182.             pp_Compose 0 f 0
  183.             pp_boxf 0 0 W H            
  184.         END            
  185.  
  186.         pp_Gotoframe s0
  187.         pp_FreeBrush
  188.         pp_SetBrush CB
  189.     END            
  190.  
  191.     IF Effect=6 then DO
  192.         pp_GetCurrentBrush
  193.         CB=result
  194.         pp_FindEmptyBrush
  195.         Brush=result
  196.         pp_SetBrush Brush
  197.         pp_GotoFrame s1
  198.         pp_PicttoSpare
  199.         pp_GotoFrame s0            
  200.         pp_Pickbrush 0 0 W H 1
  201.  
  202.         step=(s1-s0)
  203.         Step_f0=-10/Step
  204.         Step_f1=1000/Step
  205.  
  206.         pp_Compose 0 100 0    
  207.         pp_EffectOn
  208.         do i=s0 to s1
  209.             pp_GotoFrame i
  210.             f0=Step_f0*(i-s0)
  211.             f1=Step_f1*(i-s0)
  212.             IF kca=0 then DO
  213.                 pp_EffectOff
  214.                 pp_Plot W/2 H/2
  215.                 pp_EffectOn
  216.             END
  217.             pp_Sin 1 trunc(f0) trunc(f1) trunc(f0) trunc(f1)
  218.             pp_boxf 0 0 W H
  219.         END
  220.  
  221.         Step_f=100/Step
  222.         Step_f0=10/Step
  223.         Step_f1=-1000/Step
  224.  
  225.         pp_GotoFrame s0
  226.         pp_SpareOnOff
  227.         pp_PickBrush 0 0 W H 1
  228.         pp_SpareOnOff
  229.  
  230.         do i=s0 to s1
  231.             pp_GotoFrame i
  232.             pp_SpareOnOff
  233.             pp_EffectOff
  234.             pp_Plot W/2 H/2
  235.             pp_EffectOn
  236.             f0=-10+Step_f0*(i-s0)
  237.             f1=1000+Step_f1*(i-s0)
  238.             f=Step_f*(i-s0)
  239.             pp_Compose 0 100 0            
  240.             pp_Sin 1 trunc(f0) trunc(f1) trunc(f0) trunc(f1)
  241.             pp_boxf 0 0 W H
  242.             pp_SpareOnOff
  243.             pp_Spare
  244.             pp_Compose 0 f 0
  245.             pp_boxf 0 0 W H            
  246.         END            
  247.  
  248.         pp_Gotoframe s0
  249.         pp_Sin 1 30 1000 30 1000
  250.         pp_FreeBrush
  251.         pp_SetBrush CB
  252.     END            
  253.  
  254.     IF Effect=5 then DO
  255.         pp_GetCurrentBrush
  256.         CB=result
  257.         pp_FindEmptyBrush
  258.         Brush=result
  259.         pp_SetBrush Brush
  260.         pp_GotoFrame s1
  261.         pp_PicttoSpare
  262.         pp_GotoFrame s0            
  263.         pp_Pickbrush 0 0 W H 1
  264.         step=(s1-s0)
  265.         Step_f=100/Step
  266.         pp_Spray 2 0
  267.         pp_EffectOn
  268.         DO i=s0 to s1
  269.             pp_GotoFrame i
  270.             if kca=0 then DO
  271.                 pp_EffectOff
  272.                 pp_plot W/2 H/2
  273.                 pp_EffectOn
  274.             END
  275.             f=Step_f*(i-s0)
  276.             pp_Spray 2 f
  277.             pp_boxf 0 0 W H
  278.         END
  279.         pp_FreeBrush
  280.         pp_SetBrush CB
  281.     END
  282.  
  283.     IF Effect=0 then DO
  284.         pp_GetCurrentBrush
  285.         CB=result
  286.         pp_FindEmptyBrush
  287.         Brush=result
  288.         pp_SetBrush Brush
  289.         pp_GotoFrame s1
  290.         pp_PicttoSpare
  291.         pp_GotoFrame s0            
  292.         pp_Pickbrush 0 0 W H 1
  293.         step=(s1-s0)
  294.         Step_f=100/Step
  295.         pp_Spare
  296.         pp_EffectOn
  297.         DO i=s0 to s1
  298.             pp_GotoFrame i
  299.             if kca=0 then DO
  300.                 pp_EffectOff
  301.                 pp_Compose 0 100 0
  302.                 pp_plot W/2 H/2
  303.                 pp_EffectOn
  304.             END
  305.             f=Step_f*(i-s0)
  306.             pp_Compose 0 f 0
  307.             pp_boxf 0 0 W H
  308.         END
  309.         pp_FreeBrush
  310.         pp_SetBrush CB
  311.     END
  312.  
  313.     IF Effect=1 then DO
  314.         pp_GetCurrentBrush
  315.         CB=result
  316.         pp_FindEmptyBrush
  317.         Brush=result
  318.         pp_SetBrush Brush
  319.  
  320.         IF Mode=0 then DO
  321.             pp_GotoFrame s1
  322.             pp_PicttoSpare
  323.             pp_GotoFrame s0
  324.             pp_Pickbrush 0 0 W H 1
  325.             C0=0
  326.             C1=sqrt(W**2+H**2)
  327.             END
  328.         ELSE DO
  329.                 pp_GotoFrame s1
  330.                 pp_Pickbrush 0 0 W H 1
  331.                 pp_GotoFrame s0
  332.                 pp_PicttoSpare
  333.             C1=0
  334.             C0=sqrt(W**2+H**2)
  335.         END
  336.  
  337.         step=(s1-s0)
  338.         Step_c=(C1-C0)/Step
  339.         Step_f=100/Step
  340.  
  341.         pp_Spare
  342.         pp_Compose 0 100 0
  343.         DO i=s0 to s1
  344.             pp_GotoFrame i
  345.             c=(C0+Step_c*(i-s0))/2
  346.             f=Step_f*(i-s0)
  347.             pp_EffectOff
  348.             IF kca=0 then DO
  349.                 pp_PenType 6
  350.                 pp_plot W/2 H/2
  351.             END
  352.             ELSE DO
  353.                 IF Mode=1 then DO
  354.                     pp_PicttoSpare
  355.                     pp_PenType 6
  356.                     pp_plot W/2 H/2                    
  357.                 END                        
  358.             END
  359.             pp_EffectOn
  360.             pp_PenType 0
  361.             IF Fade=1 then DO
  362.                 pp_Compose 0 f 0
  363.             END
  364.             pp_Circlef W/2 H/2 trunc(c)
  365.         END
  366.  
  367.         pp_FreeBrush
  368.         pp_SetBrush CB
  369.  
  370.     END
  371.  
  372.     pp_EffectOff
  373.     pp_ComposeReqOn
  374.  
  375.     EXIT
  376.